﻿using HCQ2_Model;
using HCQ2_Model.Pay;
using HCQ2_Model.ShoppingCart;
using HCQ2_Model.ViewModel.VR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HCQ2_IDAL
{
    /// <summary>
    /// 购物相关查询
    /// </summary>
    public partial interface IT_VRShoppingCartDAL
    {
        /// <summary>
        /// 获取用户购物车信息
        /// </summary>
        /// <param name="UserId">用户ID</param>
        /// <returns></returns>
        UserShoppingCart GetUserShoppingCart(int UserId);

        /// <summary>
        /// 获取用户购物车商品信息
        /// </summary>
        /// <param name="UserId">用户ID</param>
        /// <param name="CommodityId">选中购物车商品ID</param>
        /// <returns></returns>
        List<T_DocumentInfo> ListUserShoppingCartCommodity(int UserId, int[] CommodityId);

        /// <summary>
        /// 获取用户购物车中商品已经被购买的
        /// </summary>
        /// <param name="UserId">用户ID</param>
        /// <param name="CommodityId">选中购物车中商品ID</param>
        /// <returns></returns>
        List<T_VROrderDetail> ListUserPurchased(int UserId, int[] CommodityId);

        /// <summary>
        /// 获取用户购物车中商品已经被：下架、删除
        /// </summary>
        /// <param name="UserId">用户ID</param>
        /// <param name="CommodityId">选中购物车中商品ID</param>
        /// <returns></returns>
        List<T_DocumentInfo> ListUserLowerShelfAndRemove(int UserId, int[] CommodityId);

        /// <summary>
        /// 获取选中商品总价
        /// </summary>
        /// <param name="CommodityId"></param>
        /// <returns></returns>
        Decimal GetSelectCommodityTotalMoney(int[] CommodityId);

        /// <summary>
        /// 获取选中商品中系统发布的商品总价
        /// </summary>
        /// <param name="CommodityId">选中商品ID</param>
        /// <param name="SystemUserId">系统管理员账号ID，默认：3，develop账号</param>
        /// <returns></returns>
        Decimal GetSelectSystemCommodityTotalMoney(int[] CommodityId,string SystemUserId = "3");
        /// <summary>
        ///  判断用户是否加入购物车
        /// </summary>
        /// <param name="fileId"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        int GetCartFile(int fileId, int userId);

        /// <summary>
        /// 获取选中文件进行“商品购买”的信息展示数据
        /// </summary>
        /// <param name="selectFileIdStr">选择文件的ID字符串，多个通过逗号分隔开</param>
        /// <returns></returns>
        List<ShoppingCartListModel> GetSelectFilePayInfo(string selectFileIdStr);

        /// <summary>
        /// 获取文件的所有期限价格信息
        /// </summary>
        /// <param name="fileId">文件ID</param>
        /// <returns></returns>
        List<T_VRGoodDisiPrice> ListFileAllPrice(List<int> fileId);

        /// <summary>
        /// 获取订单下面所有商品的附件下载地址
        /// </summary>
        /// <param name="ParentOrderCode">父单号</param>
        /// <returns></returns>
        List<PayDocFileOptionsModel> ListPayDocFileOptionsModel(string ParentOrderCode);
    }
}
